home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / ISSUE03 / CLINIC / LISTING3.PAS < prev    next >
Pascal/Delphi Source File  |  1995-07-28  |  906b  |  26 lines

  1.   procedure TForm1.Button1Click(Sender: TObject);
  2.   var
  3.     LoopX, LoopY: Word;
  4.   begin
  5.     { save typing this all the time }
  6.     with Image1.Picture do
  7.       { Canvas property is only in bitmaps }
  8.       if Graphic is TBitmap then
  9.         with Graphic as TBitmap do
  10.           { invert all pixels a column at a time }
  11.           for LoopX := 0 to Pred(Width) do
  12.           begin
  13.             for LoopY := 0 to Pred(Height) do
  14.             begin
  15.               Canvas.Pixels[LoopX, LoopY] := clWhite - Canvas.Pixels[LoopX, LoopY];
  16.             end;
  17.             { standard technique to stop flickering on VGA }
  18.             while Port[$3DA] and 8 = 0 do;
  19.             { be multi-user friendly - yield after each column }
  20.             Application.ProcessMessages;
  21.             { also let user terminate app }
  22.             if Application.Terminated then
  23.               Break;
  24.           end;
  25.   end;
  26.